#pragma once
#include <string>

//#include "../Graphic/GraphicManager.cpp"

enum eOrientation 
{
  eO_Over = 0,
  eO_North=3,
  eO_NorthEast=4,
  eO_East=1,
  eO_SouthEast=7,
  eO_South=6,
  eO_SouthWest=5,
  eO_West=-1,
  eO_NorthWest=2,

};
  
class cObject
{
  public:
    inline unsigned GetX()            {return muiX;}
    inline unsigned GetY()            {return muiY;}
    inline void SetX(unsigned luiX)   {muiX = luiX;}
    inline void SetY(unsigned luiY)   {muiY = luiY;}
    inline std::string GetName()           {return macName;}
    inline void SetName(const std::string &lacName) {macName = lacName;}
    inline void SetType(int leType) {meType = leType;}
    inline int GetType() {return meType;}
    eOrientation GetOrientation(unsigned luiX, unsigned luiY);
    float GetDistance(unsigned luiX, unsigned luiY);

    virtual void Update(float lfTimeStep);
    virtual void Render();
    cObject(){ macName = ""; muiX = 0; muiY = 0; muiCurrentFrame = 1; mfElapsedTime = 0.0f; miSigInc =+1;}
  protected: 
    std::string macName;
    unsigned muiX;
    unsigned muiY;
    unsigned muiCurrentFrame;
    float mfElapsedTime;
    int miSigInc;
    int meType;
};
